문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 버퍼 오버플로/스택 (문단 편집) == 실행 가능한 예제 == ## C 언어 하이라이팅이 존재하지 않아 C++ 하이라이팅으로 대체 {{{#!syntax cpp #include #include void target() { printf("OverFlow!\n"); } int main(int argc, char** argv) { char buf[16]; strcpy(buf, argv[1]); printf("%s\n", buf); } }}} 위 코드를 gcc로 컴파일할 때 -fno-stack-protector 옵션을 맨 뒤에 삽입해보자. 위에서 나왔던 스택보호장치를 배제하는 명령이다. 컴파일하기 위해 [[vi]], gcc, gdb가 필요한데 기본적으로 [[Linux|리눅스]]에 깔려있는 것들이니 준비할 필요는 없다. gdb의 경우에는 intel 문법을 쓰고 싶으면 set disassembly-flavor intel을 입력하면 된다. 그리고 gdb로 저 타깃의 주소를 구하고 프로그램을 실행할때 인수로 적당한 길이의 더미값 + 타깃의 주소를 주면 오버플로라는 문자열이 등장할 것이다. 인수 입력에는 [[Perl]]이나 [[Python]]과 같은 스크립트 언어를 추천한다. [[http://www.hackerschool.org/HS_Boards/data/Lib_system/buffer_overflow_foundation_pub.pdf|이원리 설명]][* 와우해커의 달고나 라는 사용자가 작성한 문서로 기초부터 설명되어 있다.]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기